package br.kanban.view.mb;

import java.io.Serializable;
import java.util.List;

import javax.enterprise.context.Conversation;
import javax.faces.application.FacesMessage;
import javax.faces.application.FacesMessage.Severity;
import javax.faces.context.FacesContext;
import javax.inject.Inject;

import org.primefaces.context.RequestContext;

public abstract class GenericMB<T extends Serializable> {

	@Inject  
    protected Conversation conversation;  
	
	protected T objeto;
	protected T filtro;
	protected List<T> lista;
	protected RequestContext context;

	public abstract void pesquisar();
	public abstract void novo();
	public abstract void editar(T objeto);
	public abstract void salvar();
	
	public void addMessage(Severity severety, String title, String msg){
		FacesContext.getCurrentInstance().addMessage(null, 
				new FacesMessage(severety, title, msg)); 
	}
	
	public T getObjeto() {
		return objeto;
	}

	public void setObjeto(T objeto) {
		this.objeto = objeto;
	}

	public T getFiltro() {
		return filtro;
	}

	public void setFiltro(T filtro) {
		this.filtro = filtro;
	}

	public List<T> getLista() {
		return lista;
	}

	public void setLista(List<T> lista) {
		this.lista = lista;
	}
	
	public abstract boolean validateForm();
	
	public boolean isEmpty(String x){
		return (x==null || x.isEmpty());
	}
	
}
